package com.jrx.anytxn.param.service.system;

import com.jrx.anytxn.i18n.response.TxnPage;
import com.jrx.anytxn.common.exception.TxnException;
import com.jrx.anytxn.param.dto.system.CodeTableTypeReq;
import com.jrx.anytxn.param.dto.system.CodeTableTypeRes;

/**
 * @author by yf
 * @Classname ICodeTableTypeService
 * @Description
 * @Date 2019/7/11 0011 下午 14:56
 */
public interface ICodeTableTypeService {

    /**
     * 根据租户ID分页查询代码类型表信息
     *
     * @param pageNum  页码
     * @param pageSize 页大小
     * @param tenantId 租户ID
     * @return com.jrx.anytxn.common.data.TxnPage<com.jrx.anytxn.param.dto.system.CodeTableTypeRes>
     * @author fan.yang
     * date: 2019/10/17 0017 下午 20:23
     */
    TxnPage<CodeTableTypeRes> findAllPageByTenId(Integer pageNum, Integer pageSize, String tenantId,String typeId,String typeName,String typeDescription) throws TxnException;

    /**
     * 增加代码类型表信息
     *
     * @param codeTableTypeReq 代码表请求参数
     *\@param updateBy 修改人
     * @return com.jrx.anytxn.param.dto.system.CodeTableTypeRes
     * @author fan.yang
     * date: 2019/10/17 0017 下午 20:23
     */
    CodeTableTypeRes addCodeTable(CodeTableTypeReq codeTableTypeReq,String updateBy) throws TxnException;


    /**
     * 修改代码类型表信息
     *
     * @param codeTableTypeReq 代码表请求参数
     *\@param updateBy 修改人
     * @return com.jrx.anytxn.param.dto.system.CodeTableTypeRes
     * @author fan.yang
     * date: 2019/10/17 0017 下午 20:23
     */
    CodeTableTypeRes modifyCodeTable(CodeTableTypeReq codeTableTypeReq,String updateBy) throws TxnException;

    /**
     * 根据代码类型主键和租户ID查询信息
     *
     * @param typeId   代码类型ID
     * @param tenantId 租户ID
     * @return com.jrx.anytxn.param.dto.system.CodeTableTypeRes
     * @author fan.yang
     * date: 2019/10/17 0017 下午 20:23
     */
    CodeTableTypeRes findByTypeIdAndTenId(String typeId, String tenantId) throws TxnException;

    /**
     * 根据代码类型ID和租户ID删除信息
     *
     * @param typeId   代码类型ID
     * @param tenantId 租户ID
     * @return java.lang.Boolean
     * @author fan.yang
     * date: 2019/10/17 0017 下午 20:24
     */
    Boolean removeByTypeIdAndTenId(String typeId, String tenantId) throws TxnException;
}
